"use strict";

Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.format = format;
exports.offset = offset;
/**
 * 日期格式化
 * @param {*} date 
 * @param {*} fmt 
 * @returns 
 */
function format(date) {
    var fmt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "yyyy-MM-dd hh:mm:ss";

    if (typeof date == "undefined" || !date) {
        return "";
    }
    if (typeof date === "number" || typeof date === "string") {
        date = new Date(date);
    }
    var o = {
        "M+": date.getMonth() + 1, //月份
        "d+": date.getDate(), //日
        "h+": date.getHours(), //小时
        "H+": date.getHours(), //小时
        "m+": date.getMinutes(), //分
        "s+": date.getSeconds(), //秒
        "q+": Math.floor((date.getMonth() + 3) / 3), //季度
        "S": date.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substring(4 - RegExp.$1.length));
    }
    for (var k in o) {
        if (new RegExp("(" + k + ")").test(fmt)) {
            fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substring(("" + o[k]).length));
        }
    }
    return fmt;
}

/**
 * 计算日期偏移
 * @param {*} date 传入的日期
 * @param {*} day  天数
 * @param {*} month 月数
 * @param {*} year 年数
 * @returns 
 */
function offset(date) {
    var day = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
    var month = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
    var year = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;

    if (date) {
        if (typeof date === "number" || typeof date === "string") {
            date = new Date(date);
        }
        date.setDate(date.getDate() + day);
        date.setMonth(date.getMonth() + month);
        date.setFullYear(date.getFullYear() + year);
        return date;
    }
}

exports.default = {
    format: format,
    offset: offset
};